There has been explosive growth in Internet traffic due to the increased number of Internet users, various service demands from those users, the implementation of new services, such as voice-over-IP (VoIP) or streaming applications, and the development of mobile Internet. Conventional routers, which act as relaying nodes connected to sub-networks or other routers, have accomplished their roles well in situations in which the time required to receive a packet, determine its destination, and forward the packet to the destination is usually smaller than the transmission time on network paths. More recently, however, the packet transmission capabilities of high-bandwidth network paths and the increases in Internet traffic have combined to outpace the processing capacities of conventional routers.
This has led to the development of a new generation of massively parallel, distributed architecture routers. A distributed architecture router typically comprises a large number of route processing modules that are coupled to a high-bandwidth crossbar switch via a plurality of switch fabric modules. Each route processing module has its own routing (or forwarding) table for forwarding data packets via other route processing modules to a destination address.
However, conventional routers send all data packets to the routing engines in the route processing modules. The routing engines use the routing tables to perform a look-up of the destination for each and every data packet to be sent through the switch fabric. Thus, the routing resources are before the switch and all data packets must pass through the routing engines.
Unfortunately, this approach has significant drawbacks. Performing a routing operation on every data packet leads to limitations in the overall throughput of the router. In order to improve performance, conventional routers often implement very expensive, high-speed routing components. Conventional routers also use a greater number of these expensive routing components to boost performance. This also leads to scalability problems that limit the maximum throughput achievable.
Therefore, there is a need in the art for a high-speed router that does not require the computationally intensive routing resources associated with conventional routers. In particular, there is a need for a high-speed router that does not perform a routing operation on each and every data packet that the router receives.